The present invention relates generally to the field of motor control and specifically to improvement of speed and position or phase control. More specifically, the present invention relates to the correction of encoder eccentricities in motion control systems using encoder feedback to control motor speed and position.
Precise motor speed control is a requirement of a broad array of motor-driven applications. Mirror motors in laser print heads, disk drives, and CD-ROM drives are examples of devices requiring precise motor speed control. Another example where speed control is critical is a motor driving print media through an electrophotographic (EP) printer—in particular, a color EP printer—and/or driving the PC drum(s) of such a printer. Feature placement on the PC drum(s), and on the print media as it is transported past the drum(s), is directly influenced by the speed of the driving motor. Any perturbations in the speed of the drive motor may be manifested as image errors, such as banding or misregistration of dots on the print media. These errors are particularly noticeable in color EP printers, where different colors of toner are deposited in layers on the print media. To avoid these errors, dot placement must be tightly controlled. DC motors, and in particular, brushless DC motors are typically used in such applications. These motors are well suited to the speed and position control method of the present invention, although the invention is not so limited, and is applicable to AC motors as well.
Traditional motor speed control is accomplished with a Phase-Lock Loop (PLL) controller. Application of PLL controllers to motor control systems typically comprises generating a periodic signal representative of motor speed—such as from an encoder or frequency generator—and comparing the signal to a reference signal of a desired frequency. The PLL controller attempts to match the phase, and hence frequency, of the two signals. Based on the phase error signal from the PLL controller, the voltage to the motor is increased or decreased to increase or retard its speed, so as to match the reference signal.
PLL controllers are effective in many applications, but have some limitations, particularly when motor systems are subjected to varying loads and varying speeds. Unlike oscillating electrical signals, motors and the objects they displace are inertial bodies and do not respond instantaneously to changes in commanded signals. Because of this, PLL-based motor controllers, while adequate for the speed control of motor systems that are characterized by a constant and predictable load, do not compensate well for fluctuations in mechanical load, such as commonly found in EP printers. Torque fluctuations in EP printers may arise due to paper picking, nip shock, toner stirring, and a variety of other causes.
Additionally, traditional PLL controllers are constructed using analog circuits, which include many non-linear components. Furthermore, most PLL controllers are “tuned” for a specific range of frequencies, outside of which the control seriously degrades. Even within the designed frequency range, however, due to the control of both frequency and phase, with PLL controllers it is important to know which error—phase or frequency—dominates, as controlling to the wrong error may cause the motor speed to lock onto harmonics of a commanded speed rather than the actual commanded speed.
Other motor controllers incorporate digital solutions, such as a digital PID controller, which permits implementation in ASICs or DSPs, to control the speed and position of a motor shaft subjected to varying speeds and loads. Some versions of the digital motor controllers utilize an encoder, tachometer, or other periodic signal generator from which motion feedback quantities are generated. Two exemplary motion feedback quantities include a speed count and a position count, each of which may be generated from the encoder signal. The speed count is typically determined as the number of high frequency clock cycles that elapse per encoder cycle. Thus, the speed count provides an indication of the time that elapses during one encoder period with larger speed counts reflecting lower motor speeds and vice-versa. By comparison, the position count provides an indication of a phase shift in the encoder signal and may be determined as the number of high frequency clock cycles that elapse between a periodic command pulse and a subsequent rising or falling edge of an encoder cycle. Stated another way, the position count provides an indication of the phase of the encoder signal relative to a predetermined reference. Motion feedback quantities such as these two counts are independently determined and fed back to the digital motor controller, which adjusts the motor speed, typically by adjusting the duty cycle of a pulse-width-modulated drive signal, to correct any speed and position errors indicated by the motion feedback quantities. One example of a motor controller using this type of speed and position correction is disclosed in commonly assigned U.S. patent application Ser. No. 10/378430, filed Mar. 3, 2003, which is hereby incorporated by reference herein, in its entirety.
Incremental optical encoders used to generate these motion feedback quantities provide a series of periodic signals set off by mechanical motion. The number of successive periods corresponds to resolvable mechanical increments of motion. In the case of rotary encoders, which are typically coupled to a rotating motor or drivetrain shaft, each cycle of the periodic signal produced by the encoder corresponds to some angular displacement of an encoder wheel. The encoder signal provides alternating logic states of “0” and “1” for each successive cycle of resolution. Rotary optical encoders achieve angular counting through a light emitter-receiver pair where light either passes though spaced apart apertures in the encoder wheel or reflects off spaced apart reflective segments on the encoder wheel. Where rotating encoders are used to generate these discrete motion feedback quantities, encoder eccentricity may result if the optical center of the encoder wheel is not aligned with the center of rotation of the shaft on which the encoder wheel is mounted. This eccentricity may produce apparent speed and/or position errors that are interpreted by the motor controller as actual errors. Consequently, the motor controller will try to compensate for these apparent errors by changing the speed of the motor, even where no changes are actually required.